home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib05.dsk / TAGSORT DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  61 lines

  1. 10  REM  ******************************
  2. 12  REM  *      TAGSORT DEMO          *
  3. 14  REM  *     BASIC: APPLESOFT       *
  4. 16  REM  *    AUTHOR: PAUL IRWIN      *
  5. 18  REM  *   WRITTEN: MAY, 1981       *
  6. 20  REM  *                            *
  7. 22  REM  * SUBROUTINES:               *
  8. 24  REM  *    $0300.037F - AMPERJUMP  *
  9. 26  REM  *    $8B00.8FFF - TAGSORT&   *
  10. 28  REM  *                            *
  11. 30  REM  ******************************
  12. 35  REM  FETCH AND INITIALISE AMPERJUMP IN $300.37F
  13. 40  PRINT  CHR$(4);"BLOADAMPERJUMP.OBJ0": CALL 768
  14. 45  REM  FETCH SORT ROUTINE INTO $8B00.8EFF
  15. 50  PRINT  CHR$(4);"BLOADTAGSORT&.OBJ0"
  16. 55  HIMEM: 35584: REM  SET TO $8B00 SO THAT STRINGS DON'T OVERWRITE PROGRAMS
  17. 75  REM  SET &A TO $8B00 IN AMPERJUMP
  18. 90  POKE 843,0: POKE 844,139
  19. 95  REM  SORT STRING AND SORT TAG VECTORS
  20. 100  DIM R$(20),T%(20)
  21. 102 S = 1:F = 20
  22. 105  REM  INITIALISE TAGS 1 ... 20
  23. 110  FOR I = S TO F:T%(I) = I: NEXT 
  24. 120  REM  INITIALISE STRINGS TO DATA
  25. 130  FOR I = S TO F: READ R$(I): NEXT 
  26. 140  REM  LIST THE ARRAYS BEFORE SORTING
  27. 160  PRINT : PRINT "     B E F O R E"
  28. 165  PRINT 
  29. 170  PRINT "INDEX   TAG     STRING"
  30. 180  PRINT "-----   ---     ------"
  31. 190  FOR I = S TO F: PRINT  RIGHT$("   " + STR$(I),3) + RIGHT$("     " + STR$(T%(I)),6) +"     " +R$(I): NEXT 
  32. 200  REM  CALL THE SORT
  33. 205  INPUT "PRESS RETURN TO SORT ";MM$
  34. 210  & A(R$,T%,S,F)
  35. 220  REM  LIST THE ARRAYS AFTER SORTING
  36. 230  PRINT " ": PRINT "     A F T E R"
  37. 240  PRINT : PRINT "INDEX   TAG     STRING"
  38. 250  PRINT "-----   ---     ------"
  39. 260  FOR I = S TO F: PRINT  RIGHT$("   " + STR$(I),3) + RIGHT$("     " + STR$(T%(I)),6) +"     " +R$(I): NEXT 
  40. 500  GOTO 32767
  41. 600  DATA  THE
  42. 610  DATA  QUICKSORT
  43. 620  DATA  ALGORITHM
  44. 630  DATA  IS
  45. 640  DATA  USED
  46. 650  DATA  AND
  47. 660  DATA  THE
  48. 670  DATA  SWAPPING
  49. 680  DATA  IS
  50. 690  DATA  DONE
  51. 700  DATA  FOR
  52. 705  DATA  POINTERS
  53. 710  DATA  AND
  54. 720  DATA  TAGS
  55. 730  DATA  ONLY
  56. 740  DATA  NEVER
  57. 750  DATA  FOR
  58. 760  DATA  THE
  59. 770  DATA  STRINGS
  60. 780  DATA  THEMSELVES
  61. 32767  END